home *** CD-ROM | disk | FTP | other *** search
- SUBROUTINE A5TOA1(A,B,C,CHARS,LENG)
-
- C
- C IN ORDER TO WORK ON A PDP-11, THIS HAS BEEN CHANGED TO BE
- C AN A4 TO A1 CONVERSION ROUTINE.
- C A AND B CONTAIN A 1- TO 8-CHARACTER WORD IN A4 FORMAT, C CONTAINS ANOTHER
- C WORD AND/OR PUNCTUATION. THEY ARE UNPACKED TO ONE CHARACTER PER WORD IN THE
- C ARRAY "CHARS", WITH EXACTLY ONE BLANK BETWEEN B AND C (OR NONE, IF C'S 100
- C BIT IS OFF).
- C THE INDEX OF THE LAST NON-BLANK CHAR IN CHARS IS RETURNED IN LENG.
-
- IMPLICIT INTEGER*4 (A-Z)
- C INTEGER*2 ASCVAR
- CHARACTER*1 CHARS, BLANK
- DIMENSION CHARS(20),WORDS(3)
- DATA BLANK/' '/
- NOPUN=0
- C
- C NOPUN = 0 MEANS THAT WE DO NOT HAVE A PUNCTUATION CHARACTER.
- C NOPUN = -1 MEANS THAT WE DO HAVE A PUNCTUATION CHARACTER.
- C
- MASK=8#100
- IF((C.AND.MASK).NE.MASK) NOPUN=-1
-
- WORDS(1)=A
- WORDS(2)=B
- WORDS(3)=C
- POSN=1
- DO 3 I=1,20
- 3 CHARS(I)=BLANK
- DO 1 WORD=1,3
- MASK=8#377
- IF(WORD.EQ.2.AND.POSN.NE.5) GOTO 1
- IF(WORD.EQ.3.AND.NOPUN.EQ.0) POSN=POSN+1
- DO 2 CH=1,4
- CHARS(POSN)=(WORDS(WORD).AND.MASK)
- IF(CHARS(POSN).EQ.BLANK) GOTO 1
- LENG=POSN
- WORDS(WORD)=ISHFT(WORDS(WORD),-8)
- 2 POSN=POSN+1
- 1 CONTINUE
- RETURN
- END
-